Separation Logic for a Higher-Order Typed Language
نویسندگان
چکیده
Separation logic is an extension of Hoare logic which permits reasoning about low-level imperative programs that use shared mutable heap structure. In this work, we create an extension of separation logic that permits effective, modular reasoning about typed, higher-order functional programs that use aliased mutable heap data, including pointers to code.
منابع مشابه
A Higher-Order Logic for Concurrent Termination-Preserving Refinement
Compiler correctness proofs for higher-order concurrent languages are difficult: they involve establishing a termination-preserving refinement between a concurrent high-level source language and an implementation that uses low-level shared memory primitives. However, existing logics for proving concurrent refinement either neglect properties such as termination, or only handle first-order state...
متن کاملA Logic Programming Approach to Implementing Higher-Order Term Rewriting
Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higher-order term rewriting, which includes the usual notion of rst-order rewriting, can be naturally speciied and implemented in a higher-order logic programming language. We adopt a notion of higher-order rewrite system which uses the simply typed-cal...
متن کاملThe Calculus of Constructions and Higher Order Logic
The Calculus of Constructions (CC) ([Coquand 1985]) is a typed lambda calculus for higher order intuitionistic logic: proofs of the higher order logic are interpreted as lambda terms and formulas as types. It is also the union of Girard's system F ! ([Girard 1972]), a higher order typed lambda calculus, and a rst order dependent typed lambda calculus in the style of de Bruijn's Automath ([de Br...
متن کاملThe Calculus of Constructions andHigher
The Calculus of Constructions (CC) ((Coquand 1985]) is a typed lambda calculus for higher order intuitionistic logic: proofs of the higher order logic are interpreted as lambda terms and formulas as types. It is also the union of Girard's system F ! ((Girard 1972]), a higher order typed lambda calculus, and a rst order dependent typed lambda calculus in the style of de Bruijn's Automath ((de Br...
متن کاملHigher-Order Logic Programming Languages with Constraints: A Semantics
A Kripke Semantics is defined for a higher-order logic programming language with constraints, based on Church’s Theory of Types and a generic constraint formalism. Our syntactic formal system, hoHH(C) (higher-order hereditary Harrop formulas with constraints), which extends λProlog’s logic, is shown sound and complete. A Kripke semantics for equational reasoning in the simply typed lambda-calcu...
متن کامل